package org.lintcode_Close.Stage1_Easy_50.O3数组与循环;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * @Auther: qingle
 * @Date: 2024/8/17-13:18
 * @Description:
 * @version: 1.0
 */
public class 常用数据转换 {

	// 将Set转换为List
//	Set<String> set = new HashSet<>();
//	List<String> list = new ArrayList<>(Arrays.asList(set.toArray()));

	public static List<Integer> prime(int n) {
		// write your code here
		// 除了1和自己，没有其他公约数
		Set<Integer> res = new HashSet<>();
		List<Integer> result = new ArrayList<>();
		for(int i = 2; i <=n; i++) {
			for(int j = 2; j <i; j++) {
				// 除了1和自己，没有其他公约数
				if (i % j == 0) {
					res.add(i);
				}
			}
		}

		for(int i = 2; i <=n; i++) {
//			if(!res.contains(i)) {
//				result.add(i);
//			}

			if(isPrime(i)) {
				result.add(i);
			}
		}

		return result;
	}


	public static boolean isPrime(int number) {
		// 小于2的数不是质数
		if (number < 2) {
			return false;
		}
		// 检查从2到number的平方根的所有整数是否能整除number
		for (int i = 2; i <= Math.sqrt(number); i++) {
			if (number % i == 0) {
				return false; // 如果找到一个除数，说明它不是质数
			}
		}
		return true; // 如果没有找到除数，说明它是质数
	}


	public static void main(String[] args) {
//		Set<String> res = null;
//		res.add("1");
//		res.add("2");
//		res.add("3");
//		res.add("4");

		List<Integer> prime = prime(100);
		System.out.println(prime);
		System.out.println(isPrime(97));
	}
}
